package cn.yuanqiao.archive.collection.danganjieshou.service;

import cn.yuanqiao.archive.collection.danganjieshou.domain.YqGcReceiveEfile;
import cn.yuanqiao.archive.collection.danganjieshou.domain.YqGcReceiveFile;
import cn.yuanqiao.archive.collection.danganjieshou.domain.YqGcReceiveFolder;
import cn.yuanqiao.common.core.domain.R;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * 馆藏文件接收Service接口
 *
 * @ProjectName: JZSDAS
 * @Package: cn.yuanqiao.collection.danganjieshou.service
 * @ClassName: IYqGcReceiveService
 * @Author: lenovo
 * @Description: hbWang
 * @Date: 2023/8/2 15:11
 * @Version: 1.0
 */
public interface IYqGcReceiveService {

    /**
     * 查询组卷信息列表
     *
     * @param yqGcReceiveFolder
     * @return
     */
    List<YqGcReceiveFolder> selectFolder(YqGcReceiveFolder yqGcReceiveFolder);

    /**
     * 查询卷内件信息列表
     *
     * @param yqGcReceiveFile
     * @return
     */
    List<YqGcReceiveFile> selectFile(YqGcReceiveFile yqGcReceiveFile);

    /**
     * 查询组卷信息详情
     *
     * @param id
     * @return
     */
    YqGcReceiveFolder selectFolderId(String id);

    /**
     * 查询卷内件信息详情
     *
     * @param id
     * @return
     */
    YqGcReceiveFile selectFileId(String id);

    /**
     * 组卷著录
     *
     * @param yqGcReceiveFolder
     * @return
     */
    String insertFolder(YqGcReceiveFolder yqGcReceiveFolder);

    /**
     * 卷内件著录
     *
     * @param yqGcReceiveFile
     * @return
     */
    int insertFile(YqGcReceiveFile yqGcReceiveFile);


    /**
     * 修改组卷信息
     *
     * @param yqGcReceiveFolder
     * @return
     */
    int updateFolder(YqGcReceiveFolder yqGcReceiveFolder);

    /**
     * 修改组件信息
     *
     * @param yqGcReceiveFile
     * @return
     */
    int updateFile(YqGcReceiveFile yqGcReceiveFile);

    /**
     * 删除组卷信息
     *
     * @param ids
     * @return
     */

    int delFolder(String[] ids);

    /**
     * 删除卷内件
     *
     * @param ids
     * @return
     */
    int delFile(String[] ids);

    /**
     * 上传附件
     *
     * @param file
     * @return
     */
    R<YqGcReceiveEfile> uploadFile(MultipartFile file);

    /**
     * 文件地址
     *
     * @param path
     * @return
     */
    byte[] queryImage(String path);
}
